3.3 Operaciones básicas con colas: 
De nuevo nos encontramos ante una estructura con muy pocas operaciones
disponibles. Las colas sólo permiten añadir y leer elementos:
- Añadir: Inserta un elemento al final de la cola.
- Leer: Lee y elimina un elemento del principio de la cola.
3.4 Añadir un elemento: 
Las operaciones con colas son muy sencillas, prácticamente no hay casos
especiales, salvo que la cola esté vacía.
Añadir elemento en una cola vacía:
Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero
que apunte a él, además los punteros que definen la cola, primero y ultimo que
valdrán NULL:

El proceso es muy simple, bastará con que:
- nodo->siguiente apunte a NULL.
- Y que los punteros primero y ultimo apunten a nodo.

Añadir elemento en una cola no vacía:
De nuevo partiremos de un nodo a insertar, con un puntero que apunte a él, y
de una cola, en este caso, al no estar vacía, los punteros primero y ultimo no
serán nulos:

El proceso sigue siendo muy sencillo:
- Hacemos que nodo->siguiente apunte a NULL.
- Después que ultimo->siguiente apunte a nodo.
- Y actualizamos ultimo, haciendo que apunte a nodo.

Añadir elemento en una cola, caso general:
Para generalizar el caso anterior, sólo necesitamos añadir una operación:
- Hacemos que nodo->siguiente apunte a NULL.
- Si ultimo no es NULL, hacemos que ultimo->siguiente apunte a nodo.
- Y actualizamos ultimo, haciendo que apunte a nodo.
- Si primero es NULL, significa que la cola estaba vacía, así que haremos
que primero apunte también a nodo.
3.5 Leer un elemento de una cola, implica eliminarlo: 
Ahora también existen dos casos, que la cola tenga un solo elemento o que
tenga más de uno.
Leer un elemento en una cola con más de un elemento:
Usaremos un puntero a un nodo auxiliar:

- Hacemos que nodo apunte al primer elemento de la cola, es decir a primero.
- Asignamos a primero la dirección del segundo nodo de la pila:
primero->siguiente.
- Guardamos el contenido del nodo para devolverlo como retorno, recuerda que
la operación de lectura en colas implican también borrar.
- Liberamos la memoria asignada al primer nodo, el que queremos eliminar.

Leer un elemento en una cola con un solo elemento:
También necesitamos un puntero a un nodo auxiliar:

- Hacemos que nodo apunte al primer elemento de la pila, es decir a primero.
- Asignamos NULL a primero, que es la dirección del segundo nodo teórico de
la cola: primero->siguiente.
- Guardamos el contenido del nodo para devolverlo como retorno, recuerda que
la operación de lectura en colas implican también borrar.
- Liberamos la memoria asignada al primer nodo, el que queremos eliminar.
- Hacemos que ultimo apunte a NULL, ya que la lectura ha dejado la cola
vacía.

Leer un elemento en una cola caso general:
- Hacemos que nodo apunte al primer elemento de la pila, es decir a primero.
- Asignamos a primero la dirección del segundo nodo de la pila:
primero->siguiente.
- Guardamos el contenido del nodo para devolverlo como retorno, recuerda que
la operación de lectura en colas implican también borrar.
- Liberamos la memoria asignada al primer nodo, el que queremos eliminar.
- Si primero es NULL, hacemos que ultimo también apunte a NULL, ya que la
lectura ha dejado la cola vacía.